#ifndef IGALAXY_HH_
# define IGALAXY_HH_
# include "../World.hh"
# include <QtXml>

class World::IGalaxy {
    public: virtual QString   get_name()        const = 0;
    public: virtual u2        get_min_players() const = 0;
    public: virtual u2        get_max_players() const = 0;
    public: virtual PlayerMap get_players()     const = 0;
    public: virtual StarMap   get_stars()       const = 0;

    protected: virtual void set_name(QString value)      = 0;
    protected: virtual void set_min_players(u2 value)    = 0;
    protected: virtual void set_max_players(u2 value)    = 0;
    protected: virtual void add_player(spIPlayer value)  = 0;
    protected: virtual void add_stars(spIStar value)     = 0;

    public: void to_xml(QDomNode& parent) const;
    public: void from_xml(QDomElement const& elem, Allocator& alloc);
};

#endif // ndef IGALAXY_HH_
